package com.agri.service;

import com.agri.dto.OrderCreateDTO;
import com.agri.result.Result;

/**
 * 订单服务接口
 * 定义订单的创建、查询、支付等操作
 *
 * @author Agri-Fin-Sale Team
 * @since 2025-11-05
 */
public interface OrderService {
    /**
     * 创建订单
     */
    Result<?> createOrder(OrderCreateDTO orderCreateDTO);

    /**
     * 根据ID获取订单详情
     */
    Result<?> getOrderById(Long orderId);

    /**
     * 获取用户订单列表
     */
    Result<?> getUserOrders(Long userId, Integer status);

    /**
     * 取消订单
     */
    Result<?> cancelOrder(Long orderId);

    /**
     * 支付订单
     */
    Result<?> payOrder(Long orderId);

    /**
     * 确认收货
     */
    Result<?> confirmOrder(Long orderId);

    /**
     * 删除订单
     */
    Result<?> deleteOrder(Long orderId);

    /**
     * 获取订单统计信息
     */
    Result<?> getOrderStats(Long userId);
}